﻿using Dominio.Core.Repositorios;
using ExcellentProject.Dominio.Cuestionarios.Entidades;
using ExcellentProject.Dominio.Cuestionarios.Servicios.Catalogos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Transactions;

namespace ExcellentProject.Aplicacion.Cuestionarios.Servicios.ServicioDeCatalogos
{
    public class ServicioDeCatalogos
    {
        IServicioDeAdministracionDeCatalogos servicioDeCatalogos;

        public ServicioDeCatalogos(IServicioDeAdministracionDeCatalogos servicioDeCatalogos)
        {
            this.servicioDeCatalogos = servicioDeCatalogos;
        }

        public IEnumerable<Catalogo> ConsultarCatalogo(string idCatalogo)
        {
            var opcionesDeTransaccion = new TransactionOptions()
            {
                IsolationLevel = IsolationLevel.ReadUncommitted
            };

            IEnumerable<Catalogo> resultado = null;

            using (var transaccion = new TransactionScope(TransactionScopeOption.Suppress, opcionesDeTransaccion))
            {
                resultado= servicioDeCatalogos.ConsultarCatalogo(idCatalogo);
                transaccion.Complete();
            }
            return resultado;
        }
    }
}
